    /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clientereligadora.operacoes;

import clientereligadora.conexao.Conexao;
import clientereligadora.entidades.*;
import clientereligadora.paineis.PainelConfiguracao;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.ResultSet;
import com.mysql.jdbc.Statement;
import java.io.File;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author leandro.aquino
 */
public class Operacao {
      SimpleDateFormat date = new SimpleDateFormat("ddMMyyyy"); 
       SimpleDateFormat dateFormatDB = new SimpleDateFormat("yyyy-MM-dd");
       SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SS");

 WhCalibration wc;
    
    Conexao conexao;
    
    public String getPasswd(String usuario) {
        String passwd = null;

        try {

            Statement stmt = (Statement) conexao.conn.createStatement();

            //Mandamos o SQL para o banco e obtemos um ResultSet
            String sql = "SELECT dataserverreligadora.usuario.senha  FROM dataserverreligadora.usuario "
                    + "WHERE usuario.login = '" +usuario+ "'";
            
            System.out.println(sql);
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);
            
            //Percorrendo o ResultSet e obtendo os valores do banco
            while (rs.next()) {
                passwd = (rs.getString("usuario.senha"));
               
            }

        } catch (SQLException ex) {
            System.out.println(ex+"Problema com o SQL, Obtencao de senha");
        }

        return passwd;
    }
    
      public String getCabricao() {
        String passwd = null;

        try {

            Statement stmt = (Statement) conexao.conn.createStatement();

            //Mandamos o SQL para o banco e obtemos um ResultSet
            String sql = "SELECT *  FROM dataserverreligadora.whcalibration " ;
            
            System.out.println(sql);
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);
            
            //Percorrendo o ResultSet e obtendo os valores do banco
            while (rs.next()) {
                passwd = (rs.getString("usuario.senha"));
               
            }

        } catch (SQLException ex) {
            System.out.println(ex+"Problema com o SQL, Obtencao de senha");
        }

        return passwd;
    }
       public List<Medidor> listaMedidores() {

        List<Medidor> listMedidores = new ArrayList<>();
        
        try {
   

            String cmd = "SELECT  * FROM dataserverreligadora.medidor"
                    + " ORDER BY dataserverreligadora.medidor.id ASC"
                    + " LIMIT 50";

            Statement query = (Statement) Conexao.conn.createStatement();

            ResultSet rs = (ResultSet) query.executeQuery(cmd);

            listMedidores = insetTableMedidores(rs);
            System.out.println("listMedidor: "+listMedidores);
            
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "NAO FOI POSSIVEL MONTAR A TABELA DE MEDIDORES\n"
                    + "LISTA MEDIDORES\n"
                    + e, "ERRO",
                    JOptionPane.ERROR_MESSAGE);
        }
        
        return listMedidores;

    }
    
     public List<Medidor> insetTableMedidores(ResultSet rs) throws SQLException {
        List<Medidor> listMedidor = new ArrayList<>();

        while (rs.next()) {
            
            Medidor medidor = new Medidor();
            
            medidor.setId(rs.getInt("id"));
            
            medidor.setId_religadora(rs.getInt("id_religadora"));

            medidor.setAWATTHR(rs.getInt("AWATTHR"));

            medidor.setBWATTHR(rs.getInt("BWATTHR"));

            medidor.setCWATTHR(rs.getInt("CWATTHR"));

            medidor.setAVARHR(rs.getInt("AVARHR"));

            medidor.setBVARHR(rs.getInt("BVARHR"));

            medidor.setCVARHR(rs.getInt("CVARHR"));

            medidor.setAVAHR(rs.getInt("AVAHR"));

            medidor.setBVAHR(rs.getInt("BVAHR"));

            medidor.setCVAHR(rs.getInt("CVAHR"));

            medidor.setAIRMS(rs.getInt("AIRMS"));

            medidor.setBIRMS(rs.getInt("BIRMS"));

            medidor.setCIRMS(rs.getInt("CIRMS"));

            medidor.setAVRMS(rs.getInt("AVRMS"));

            medidor.setBVRMS(rs.getInt("BVRMS"));

            medidor.setCVRMS(rs.getInt("CVRMS"));

            medidor.setFREQ(rs.getInt("FREQ"));

            medidor.setTEMP(rs.getInt("TEMP"));

            medidor.setINTERV(rs.getInt("INTERV"));
            
            medidor.setDatetime(rs.getDate("datetime"));


            
            // Adicionando o objeto Ã  lista  
            listMedidor.add(medidor);
            System.out.println("listMedidor: "+listMedidor);
        }
        rs.close();

        return listMedidor;
    }
     
     //lista de usuarios
     public List<Usuario> listaUsuarios() {

        List<Usuario> listUsuario = new ArrayList<>();
        
        try {
   

            String cmd = "SELECT  * FROM dataserverreligadora.usuario"
                    + " ORDER BY dataserverreligadora.usuario.nome ASC"
                    + " LIMIT 50";

            System.out.println("cmd" +cmd);
            Statement query = (Statement) Conexao.conn.createStatement();

            ResultSet rs = (ResultSet) query.executeQuery(cmd);

            listUsuario = insetTableUsuario(rs);
            System.out.println("listUsuario: "+listUsuario);
            
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "NAO FOI POSSIVEL MONTAR A TABELA DE USUARIOS\n"
                    + "LISTA USUARIOS\n"
                    + e, "ERRO",
                    JOptionPane.ERROR_MESSAGE);
        }
        
        return listUsuario;

    }
      public List<Usuario> insetTableUsuario(ResultSet rs) throws SQLException {
        List<Usuario> listUsuario = new ArrayList<>();

        while (rs.next()) {
            
            Usuario usuario = new Usuario();
            
            usuario.setId(rs.getInt("id"));
         
            usuario.setNome(rs.getString("nome"));
            
            usuario.setLogin(rs.getString("login"));
            
            usuario.setSenha(rs.getString("senha"));
            
            usuario.setStatus(rs.getString("status"));
            
            usuario.setDataUltimoAcesso(rs.getDate("ultimoacesso"));
            
            usuario.setFoto(rs.getString("foto"));


            
            // Adicionando o objeto Ã  lista  
            listUsuario.add(usuario);
            System.out.println("listUsuario: "+usuario);
        }
        rs.close();

        return listUsuario;
    }

public int [] getDadosCalibradora(int codReligadora ){
    
        
        int[] listagem = new int[46];
        
        java.sql.ResultSet result;
        java.sql.Statement query;
        int counter = 0;
        
          String command = "SELECT *  FROM dataserverreligadora.whcalibration "
                + "WHERE whcalibration.id_religadora = "+codReligadora+"";

        
       
        try {
            query = Conexao.conn.createStatement();
          
            result = query.executeQuery(command);
            //grava fields
            while (result.next() == true) {
                
                
                listagem[0] = result.getInt("id");
                listagem[1] = result.getInt("id_religadora");
                listagem[2] = result.getInt("opmode");
                listagem[3] = result.getInt("mmode");
                listagem[4] = result.getInt("wavmode");
                listagem[5] = result.getInt("compmode");
                listagem[6] = result.getInt("lcycmode");
                listagem[7] = result.getInt("gain");
                listagem[8] = result.getInt("avrmsgain");
                listagem[9] = result.getInt("bvrmsgain");
                listagem[10] = result.getInt("cvrmsgain");
                listagem[11] = result.getInt("aigain");
                listagem[12] = result.getInt("bigain");
                listagem[13] = result.getInt("cigain");
                listagem[14] = result.getInt("awg");
                listagem[15] = result.getInt("bwg");
                listagem[16] = result.getInt("cwg");
                listagem[17] = result.getInt("avarg");
                listagem[18] = result.getInt("bvarg");
                listagem[19] = result.getInt("cvarg");
                listagem[20] = result.getInt("avag");
                listagem[21] = result.getInt("bvag");
                listagem[22] = result.getInt("cvag");
                listagem[23] = result.getInt("avrmsos");
                listagem[24] = result.getInt("bvrmsos");
                listagem[25] = result.getInt("cvrmsos");
                listagem[26] = result.getInt("airmsos");
                listagem[27] = result.getInt("birmsos");
                listagem[28] = result.getInt("cirmsos");
                listagem[29] = result.getInt("awattos");
                listagem[30] = result.getInt("bwattos");
                listagem[31] = result.getInt("cwattos");
                listagem[32] = result.getInt("avaros");
                listagem[33] = result.getInt("bvaros");
                listagem[34] = result.getInt("cvaros");
                listagem[35] = result.getInt("aphcal");
                listagem[36] = result.getInt("bphcal");
                listagem[37] = result.getInt("cphcal");
                listagem[38] = result.getInt("wdiv");
                listagem[39] = result.getInt("vardiv");
                listagem[40] = result.getInt("vadiv");
                listagem[41] = result.getInt("apcfnum");
                listagem[42] = result.getInt("apcfden");
                listagem[43] = result.getInt("varcfnum");
                listagem[44] = result.getInt("varcfden");
                Date datateste = result.getDate("data");

                int a = Integer.parseInt(date.format(datateste));
                 System.out.println(a);
                 listagem[45] = a;
               

                
                
                counter++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao quantizar a quantidade de edicoes\n"
                    + e, "Erro de conexao",
                    JOptionPane.ERROR_MESSAGE);
        }


        return listagem;
    }
public int [] getDadosReligadora(int codReligadora ){
    
        
        int[] listagem = new int[32];
        
        java.sql.ResultSet result;
        java.sql.Statement query;
        int counter = 0;
        
          String command = "SELECT *  FROM dataserverreligadora.status_religadora "
                + "WHERE status_religadora.id_religadora = "+codReligadora+"";

        System.out.println(command);
       
        try {
            query = Conexao.conn.createStatement();
          
            result = query.executeQuery(command);
            //grava fields
            while (result.next() == true) {
                
                
                //listagem[0] = result.getInt("id");
                listagem[0] = result.getInt("id_religadora");
                listagem[1] = result.getInt("estado_chave");
                listagem[2] = result.getInt("estado_maquina");
                listagem[3] = result.getInt("falha_tensao");
                listagem[4] = result.getInt("falha_corrente");
                listagem[5] = result.getInt("falha_sobrecarga");
                listagem[6] = result.getInt("aviso_sobrecarga");
                listagem[7] = result.getInt("contador_falhas_tensao");
                listagem[8] = result.getInt("contador_curtos");
                listagem[9] = result.getInt("contador_sobrecarga");
                listagem[10] = result.getInt("contador_aviso_sobrecarga");
                listagem[11] = result.getInt("corrente_curto_atual_fase_a");
                listagem[12] = result.getInt("corrente_curto_atual_fase_b");
                listagem[13] = result.getInt("corrente_curto_atual_fase_c");
                listagem[14] = result.getInt("valor_sobrecarga_fase_a");
                listagem[15] = result.getInt("valor_sobrecarga_fase_b");
                listagem[16] = result.getInt("valor_sobrecarga_fase_c");
                listagem[17] = result.getInt("limite_sobrecarga");
                listagem[18] = result.getInt("tempo_sobrecarga");
                listagem[19] = result.getInt("tensao_fase_a");
                listagem[20] = result.getInt("tensao_fase_b");
                listagem[21] = result.getInt("tensao_fase_c");
                listagem[22] = result.getInt("corrente_fase_a");
                listagem[23] = result.getInt("corrente_fase_b");
                listagem[24] = result.getInt("corrente_fase_c");
                listagem[25] = result.getInt("corrente_fase_neutro");
                listagem[26] = result.getInt("estado_switch_servico");
                listagem[27] = result.getInt("estado_operacao");
                listagem[28] = result.getInt("data");
                
                //converte data para inteiro
                Date datateste = result.getDate("data");
                int data = Integer.parseInt(date.format(datateste));
                listagem[28] = data;
                listagem[29] = result.getInt("lat");
                listagem[30] = result.getInt("lon");
               
                counter++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao quantizar a quantidade de edicoes\n"
                    + e, "Erro de conexao",
                    JOptionPane.ERROR_MESSAGE);
        }


        return listagem;
    }

         public List<WhCalibration>   listCalibracao()  {
        List<WhCalibration> listCalibracao = new ArrayList<>();

        ResultSet result;
        Statement query;

int t =0;
        String command = "SELECT *  FROM dataserverreligadora.whcalibration "
                + "where whcalibration.id_religadora = 1";


        try {
            query = (Statement) Conexao.conn.createStatement();

            result = (ResultSet) query.executeQuery(command);
            //grava fields
            while (result.next() == true) {

                WhCalibration wc = new WhCalibration();

t =result.getInt("id");

                wc.setId(result.getInt(t));
                wc.setId_religadora(result.getInt("id_religadora"));
                wc.setOpmode(result.getInt("opmode"));
                wc.setMmode(result.getInt("mmode"));
                wc.setWavmode(result.getInt("wavmode"));
                wc.setCompmode(result.getInt("compmode"));
                wc.setLcycmode(result.getInt("lcycmode"));
                wc.setGain(result.getInt("gain"));
                wc.setAvrmsgain(result.getInt("avrmsgain"));
                wc.setBvrmsgain(result.getInt("bvrmsgain"));
                wc.setCvrmsgain(result.getInt("cvrmsgain"));
                wc.setAigain(result.getInt("aigain"));
                wc.setBigain(result.getInt("bigain"));
                wc.setCigain(result.getInt("cigain"));
                wc.setAwg(result.getInt("awg"));
                wc.setBwg(result.getInt("bwg"));
                wc.setCwg(result.getInt("cwg"));
                wc.setAvarg(result.getInt("avarg"));
                wc.setBvarg(result.getInt("bvarg"));
                wc.setCvarg(result.getInt("cvarg"));
                wc.setAvag(result.getInt("avag"));
                wc.setBvag(result.getInt("bvag"));
                wc.setCvag(result.getInt("cvag"));
                wc.setAvrmsos(result.getInt("avrmsos"));
                wc.setBvrmsos(result.getInt("bvrmsos"));
                wc.setCvrmsos(result.getInt("cvrmsos"));
                wc.setAirmsos(result.getInt("airmsos"));
                wc.setBirmsos(result.getInt("birmsos"));
                wc.setCirmsos(result.getInt("cirmsos"));
                wc.setAwattos(result.getInt("awattos"));
                wc.setBwattos(result.getInt("bwattos"));
                wc.setCwattos(result.getInt("cwattos"));
                wc.setAvaros(result.getInt("avaros"));
                wc.setBvaros(result.getInt("bvaros"));
                wc.setCvaros(result.getInt("cvaros"));
                wc.setAphcal(result.getInt("aphcal"));
                wc.setBphcal(result.getInt("bphcal"));
                wc.setCphcal(result.getInt("cphcal"));
                wc.setWdiv(result.getInt("wdiv"));
                wc.setVardiv(result.getInt("vardiv"));
                wc.setVadiv(result.getInt("vadiv"));
                wc.setApcfnum(result.getInt("apcfnum"));
                wc.setApcfden(result.getInt("apcfden"));
                wc.setVarcfnum(result.getInt("varcfnum"));
                wc.setVarcfden(result.getInt("varcfden"));
                wc.setDatetime(result.getDate("data"));

                listCalibracao.add(wc);
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao quantizar a quantidade de edicoes\n"
                    + e, "Erro de conexao",
                    JOptionPane.ERROR_MESSAGE);
        }
             System.out.println(t);

        return listCalibracao;
    }
         /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          * 
          * METODOS DE INSERÇÃO
          */

   public boolean inserirUsuario(String nome, String login, String senha,
            String statusUser, Date ultimoacesso, File foto) {

        boolean status = true;

        String command = null;

        try {
            Statement stmt = (Statement) Conexao.conn.createStatement();

            //Mandamos o SQL para o banco e obtemos um ResultSet
            command = "INSERT INTO dataserverreligadora.usuario(nome,login,senha,status,ultimoacesso,foto)"
                    + " VALUES ('" + nome + "','" + login + "','" + senha + "','" + statusUser + "','" + dateFormatDB.format(ultimoacesso) + "','" + foto + "');";

            stmt.execute(command);

            if (status == false) {
                JOptionPane.showMessageDialog(null, "" + command, "Erro", JOptionPane.ERROR_MESSAGE);
            } else {
                JOptionPane.showMessageDialog(null, "USUARIO CADASTRADO COM SUCESSO!");

            }
        } catch (SQLException ex) {
            Logger.getLogger(Operacao.class.getName()).log(Level.SEVERE, null, ex);
            status = false;

        }

        return status;

    }

       /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        *                                                 X
        * METODOS DE VERIFICAÇÃO                          X
        *                                                 X
        * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          */
 public String verificaLogin(String login) {
        String loginUser = null;

        try {

            java.sql.Statement stmt = Conexao.conn.createStatement();

            //Mandamos o SQL para o banco e obtemos um ResultSet
            String command = "SELECT * FROM dataserverreligadora.usuario "
                    + "WHERE login = '"+login+"'";
            //SELECT * FROM controluser WHERE login==login
            java.sql.ResultSet rs = stmt.executeQuery(command);

            //Percorrendo o ResultSet e obtendo os valores do banco
            while (rs.next()) {
                loginUser = (rs.getString("login"));
              
            }

        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "ERRO "+ex);
        }

        return loginUser;
    }

  public List<Medidor> getListaMedidores(String filtro) {

        List<Medidor> listaMedidores = new ArrayList<Medidor>();
        
        try {
   

            String cmd = "SELECT * FROM dataserverreligadora.medidor "+filtro+" "
                    + "ORDER BY  medidor.id_religadora  ASC";
            System.out.println(cmd);
                    
            Statement query = (Statement) Conexao.conn.createStatement();

            ResultSet rs = (ResultSet) query.executeQuery(cmd);

            listaMedidores = insertTableMedidores(rs);
            
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao montar tabela de medidores\n"
                    + "COD: 200065\n"
                    + e, "Erro de conexao",
                    JOptionPane.ERROR_MESSAGE);
        }
        
        return listaMedidores;

    }
 
  public List<Status_Religadora> getListaReligadoras(String filtro) {

        List<Status_Religadora> listaReligadoras = new ArrayList<>();
        
        try {
   

            String cmd = "SELECT * FROM dataserverreligadora.status_religadora "+filtro+" "
                    + "ORDER BY  status_religadora.id_religadora  ASC";
            System.out.println(cmd);
                    
            Statement query = (Statement) Conexao.conn.createStatement();

            ResultSet rs = (ResultSet) query.executeQuery(cmd);

            listaReligadoras = insertTableReligadoras(rs);
            
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao montar tabela de Religadoras\n"
                    + "COD: 200065\n"
                    + e, "Erro de conexao",
                    JOptionPane.ERROR_MESSAGE);
        }
        
        return listaReligadoras;

    }
  public List<Medidor> insertTableMedidores(ResultSet rs) throws SQLException {
        
        List<Medidor> listaMedidores = new ArrayList<>();

        while (rs.next()) {

            Medidor md = new Medidor();

            md.setId(rs.getInt("id"));
            md.setId_religadora(rs.getInt("id_religadora"));
            md.setAWATTHR(rs.getInt("AWATTHR"));
            md.setBWATTHR(rs.getInt("BWATTHR"));
            md.setCWATTHR(rs.getInt("CWATTHR"));
            md.setAVARHR(rs.getInt("AVARHR"));
            md.setBVARHR(rs.getInt("BVARHR"));
            md.setCVARHR(rs.getInt("CVARHR"));
            md.setAVAHR(rs.getInt("AVAHR"));
            md.setBVAHR(rs.getInt("BVAHR"));
            md.setCVAHR(rs.getInt("CVAHR"));
            md.setAIRMS(rs.getInt("AIRMS"));
            md.setBIRMS(rs.getInt("BIRMS"));
            md.setCIRMS(rs.getInt("CIRMS"));
            md.setAVRMS(rs.getInt("AVRMS"));
            md.setBVRMS(rs.getInt("BVRMS"));
            md.setCVRMS(rs.getInt("CVRMS"));
            md.setFREQ(rs.getInt("FREQ"));
            md.setTEMP(rs.getInt("TEMP"));
            md.setINTERV(rs.getInt("INTERV"));
            md.setDatetime(rs.getDate("data"));
            System.out.println(rs.getInt("id"));
            
            // Adicionando o objeto Ã  lista  
            listaMedidores.add(md);
        }
        rs.close();

        return listaMedidores;
    }
   public List<Status_Religadora> insertTableReligadoras(ResultSet rs) throws SQLException {
        
        List<Status_Religadora> listaReligadoras = new ArrayList<>();

        while (rs.next()) {

            Status_Religadora rel  = new Status_Religadora();

                  
            rel.setEstado_chave(rs.getInt("estado_chave"));
            rel.setEstado_maquina( rs.getInt("estado_maquina"));
            rel.setFalha_tensao(rs.getInt("falha_tensao"));
            rel.setFalha_corrente(rs.getInt("falha_corrente"));
            rel.setFalha_sobrecarga(rs.getInt("falha_sobrecarga"));
            rel.setAviso_sobrecarga(rs.getInt("aviso_sobrecarga"));
            rel.setContador_falhas_tensao(rs.getInt("contador_falhas_tensao"));
            rel.setContador_curtos(rs.getInt("contador_curtos"));
            rel.setContador_sobrecarga(rs.getInt("contador_sobrecarga"));
            rel.setContador_aviso_sobrecarga(rs.getInt("contador_aviso_sobrecarga"));
            rel.setCorrente_curto_atual_fase_a(rs.getInt("corrente_curto_atual_fase_a"));
            rel.setCorrente_curto_atual_fase_b(rs.getInt("corrente_curto_atual_fase_b"));
            rel.setCorrente_curto_atual_fase_c(rs.getInt("corrente_curto_atual_fase_c"));
            rel.setValor_sobrecarga_fase_a(rs.getInt("valor_sobrecarga_fase_a"));
            rel.setValor_sobrecarga_fase_b(rs.getInt("valor_sobrecarga_fase_b"));
            rel.setValor_sobrecarga_fase_c(rs.getInt("valor_sobrecarga_fase_c"));
            rel.setLimite_sobrecarga(rs.getInt("limite_sobrecarga"));
            rel.setTempo_sobrecarga(rs.getInt("tempo_sobrecarga"));
            rel.setTensao_fase_a(rs.getInt("tensao_fase_a"));
            rel.setTensao_fase_b(rs.getInt("tensao_fase_b"));
            rel.setTensao_fase_c(rs.getInt("tensao_fase_c"));
            rel.setCorrente_fase_a(rs.getInt("corrente_fase_a"));
            rel.setCorrente_fase_b(rs.getInt("corrente_fase_b"));
            rel.setCorrente_fase_c(rs.getInt("corrente_fase_c"));
            rel.setCorrent_fase_neutro(rs.getInt("corrente_fase_neutro"));
            rel.setEstado_switch_servico(rs.getInt("estado_switch_servico"));
            rel.setEstado_operacao(rs.getInt("estado_operacao"));
            rel.setDatetime(rs.getDate("data"));
            System.out.println(rs.getInt("tensao_fase_a"));
            // Adicionando o objeto Ã  lista  
            listaReligadoras.add(rel);
        }
        rs.close();

        return listaReligadoras;
    }
   

    public List<Status_Religadora> listar() {
        List<Status_Religadora> religadoras = new ArrayList<>();
      

       

        try {

             String cmd = "SELECT * FROM dataserverreligadora.religadora "
                     + " JOIN dataserverreligadora.status_religadora ON  "
                     + " dataserverreligadora.religadora.id = dataserverreligadora.status_religadora.id_religadora"
                    // + "  WHERE status_religadora.status = 'ATIVO' "
                     + " ORDER BY  religadora.id";
             
            System.out.println(cmd);
                    
            Statement query = (Statement) Conexao.conn.createStatement();

            ResultSet rs = (ResultSet) query.executeQuery(cmd);
         

         

            while (rs.next()) {

                Status_Religadora religadora = new Status_Religadora();

                religadora.setId_religadora(rs.getInt("id_religadora"));

                religadora.setLat(rs.getString("lat"));
                
                religadora.setLon(rs.getString("lon"));
                
                 religadora.setStatus(rs.getString("status"));
                 
                 System.out.println(religadora);
                religadoras.add(religadora);
            }
  
        } catch (SQLException e) {

            e.printStackTrace();

        }

         return religadoras;
    }
/*METODOS DE UPDATE
 * 
 * 
 * 
 */
    
    public boolean UpdateWhCalibration(int id, int opmode, int mmode, int wavmode, int compmode, int lcymode, int gain,
            int avrmsgain, int bvrmsgain, int cvrmsgain, int aigain, int bigain, int cigain, int awg, int bwg, int cwg,
            int avarg, int bvarg, int cvarg, int avag, int bvag, int cvag, int avrmsos, int bvrmsos, int cvrmsos, int airmsos, int birmsos, int cirmsos, int awattos, int bwattos, int cwattos, int avaros,
            int bvaros, int cvaros, int aphcal, int bphcal, int cphcal, int wdir, int vardir, int vadiv, int apcfnum, int apcfden,
            int varcfnum, int varcfden, Date data) {

       boolean status = true;  
  
        
      String command = "UPDaTE  dataserverreligadora.whcalibration "
                + "SET whcalibration.opmode = "+opmode+",whcalibration.mmode = "+mmode+", whcalibration.wavmode = "+wavmode+","
                  + " whcalibration.compmode = "+compmode+",whcalibration.lcycmode = "+lcymode+",whcalibration.gain = "+gain+", "
                  + " whcalibration.avrmsgain = "+avrmsgain+",whcalibration.bvrmsgain = "+bvrmsgain+",whcalibration.cvrmsgain = "+cvrmsgain+","
                  + " whcalibration.aigain = "+aigain+",whcalibration.bigain = "+bigain+",whcalibration.cigain = "+cigain+", "
                  + " whcalibration.awg = "+awg+",whcalibration.bwg = "+bwg+", whcalibration.cwg = "+cwg+", "
                  + " whcalibration.avarg = "+avarg+",whcalibration.bvarg = "+bvarg+",whcalibration.cvarg = "+cvarg +", "
                  + " whcalibration.avag= "+avag+",whcalibration.bvag = "+bvag+",whcalibration.cvag = "+cvag+", "
                  + " whcalibration.avrmsos = "+avrmsos+",whcalibration.bvrmsos = "+bvrmsos+",whcalibration.cvrmsos = "+cvrmsos+", "
                  + " whcalibration.airmsos = "+airmsos+",whcalibration.birmsos = "+birmsos+",whcalibration.cirmsos = "+cirmsos+", "
                  + " whcalibration.awattos = "+awattos+",whcalibration.bwattos = "+bwattos+",whcalibration.cwattos = "+cwattos+", "
                  + " whcalibration.avaros = "+avaros+", whcalibration.bvaros = "+bvaros+",whcalibration.cvaros = "+cvaros+", "
                  + " whcalibration.aphcal = "+aphcal+",whcalibration.bphcal = "+bphcal+",whcalibration.cphcal = "+cphcal+", "
                  + " whcalibration.wdiv = "+wdir+",whcalibration.vardiv = "+vardir+",whcalibration.vadiv = "+vadiv+", "
                  + " whcalibration.apcfnum = "+apcfnum+", whcalibration.apcfden = "+apcfden+", whcalibration.varcfnum = "+varcfnum+", "
                  + " whcalibration.varcfden = "+varcfden+""
                  + " WHERE whcalibration.id = "+id+"";//, whcalibration.data = "+Datetime+"";

        System.out.println("CMD> "+command);
      java.sql.Statement query = null;
      try {
          query = Conexao.conn.createStatement();
          query.executeUpdate(command);

      } catch (SQLException e) {
          JOptionPane.showMessageDialog(null, "Erro ao quantizar a quantidade de edicoes\n"
                  + e, "Erro de conexao",
                  JOptionPane.ERROR_MESSAGE);
      }


        return status;
    }
    
     
    public void getConfiguracao2() throws SQLException {
        int id;
        Statement stmt = (Statement) Conexao.conn.createStatement();


        ResultSet rec = (ResultSet) stmt.executeQuery("SELECT * FROM dataserverreligadora.configuracao WHERE dataserverreligadora.configuracao.id = 1");

        while (rec.next()) {
            id = rec.getInt("id");
            System.out.println("ID"+id);
        }

    }
        
        public void getConfiguracao1( ) {
        try {
            //Cria um statement para podermos mandar um SQL para o banco
            Statement stmt = (Statement) Conexao.conn.createStatement();

            //Mandamos o SQL para o banco e obtemos um ResultSet
            String sql = "SELECT * FROM dataserverreligadora.configuracao"
                    + " WHERE dataserverreligadora.configuracao.id = 1";
            ResultSet rs = (ResultSet) stmt.executeQuery(sql);

            //Percorrendo o ResultSet e obtendo os valores do banco
            while (rs.next()) {
             int id = rs.getInt("configuracao.id");
               System.out.println("IDDDDDD: "+ id);


            }
        } catch (SQLException ex) {
            
        }

    }
    public Configuracao getConfiguracao(int id) {
        
        Configuracao cfg = new Configuracao();
        try {

            // Após estabelecermos a conexão com o banco de dados  
            // Utilizamos o método createStatement de con para criar o Statement  
            Statement stm = (Statement) Conexao.conn.createStatement();

            // Vamos executar o seguinte comando SQL :  
            String SQL = "SELECT * FROM dataserverreligadora.configuracao"
                    + " WHERE dataserverreligadora.configuracao.id_religadora = "+id+"";
            System.out.println(SQL);
            // Definido o Statement, executamos a query no banco de dados  
            ResultSet rs = (ResultSet) stm.executeQuery(SQL);

            // O método next() informa se houve resultados e posiciona o cursor do banco  
            // na próxima linha disponível para recuperação  
            // Como esperamos várias linhas utilizamos um laço para recuperar os dados  
            if (rs.next()) {

                // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
                cfg.setId(rs.getInt("id"));
                cfg.setId_religadora(rs.getInt("id_religadora"));
                cfg.setModo_operacao(rs.getInt("modo_operacao"));
                cfg.setKa(rs.getInt("ka"));
                cfg.setMca(rs.getInt("mca"));
                cfg.setIcc(rs.getInt("icc"));
                cfg.setIs(rs.getInt("_is"));
                cfg.setCserv(rs.getInt("cserv"));
                cfg.setCcurto(rs.getInt("ccurto"));
                cfg.setCmax(rs.getInt("cmax"));
                cfg.setCneutro(rs.getInt("cneutro"));
                cfg.setCneutromax(rs.getInt("cneutromax"));
                cfg.setNcsc(rs.getInt("ncsc"));
                cfg.setNcsot(rs.getInt("ncsot"));
                cfg.setNcsut(rs.getInt("ncsut"));
                cfg.setPtrafo(rs.getInt("ptrafo"));
                cfg.setLalsoc(rs.getInt("lalsoc"));
                cfg.setLacsoc(rs.getInt("lacsoc"));
                cfg.setPacpot(rs.getInt("pacpot"));
                cfg.setCorrente_aviso(rs.getInt("corrente_aviso"));
                cfg.setCorrente_desarme(rs.getInt("corrente_desarme"));
                cfg.setCorrente_rearme(rs.getInt("corrente_rearme"));
                cfg.setSub_tensao_aviso(rs.getInt("sub_tensao_aviso"));
                cfg.setSub_tensao_desarme(rs.getInt("sub_tensao_desarme"));
                cfg.setSub_tensao_rearme(rs.getInt("sub_tensao_rearme"));
                cfg.setSobre_tensao_aviso(rs.getInt("sobre_tensao_aviso"));
                cfg.setSobre_tensao_desarme(rs.getInt("sobre_tensao_desarme"));
                cfg.setSobre_tensao_rearme(rs.getInt("sobre_tensao_rearme"));
                cfg.setFalta_fase_aviso(rs.getInt("falta_fase_aviso"));
                cfg.setFalta_fase_desarme(rs.getInt("falta_fase_desarme"));
                cfg.setFalta_fase_rearme(rs.getInt("falta_fase_rearme"));
                cfg.setSobrecarga_aviso(rs.getInt("sobrecarga_aviso"));
                cfg.setSobrecarga_desarme(rs.getInt("sobrecarga_desarme"));
                cfg.setSobrecarga_rearme(rs.getInt("sobrecarga_rearme"));
                cfg.setCorrente_neutro_aviso(rs.getInt("corrente_neutro_aviso"));
                cfg.setCorrente_neutro_desarme(rs.getInt("corrente_neutro_desarme"));
                cfg.setCorrente_neutro_rearme(rs.getInt("corrente_neutro_rearme"));
                cfg.setNumero_religamentos_corrente(rs.getInt("numero_religamentos_corrente"));
                cfg.setIntervalo_1(rs.getInt("intervalo_1"));
                cfg.setIntervalo_2(rs.getInt("intervalo_2"));
                cfg.setIntervalo_3(rs.getInt("intervalo_3"));
                cfg.setIntervalo_4(rs.getInt("intervalo_4"));
                cfg.setIntervalo_5(rs.getInt("intervalo_5"));
                cfg.setTempo_latencia_pos_religamento(rs.getInt("tempo_latencia_pos_religamento"));
                cfg.setTempo_religamento_pos_normalizacao_tensao(rs.getInt("tempo_religamento_pos_normalizacao_tensao"));
                cfg.setInrush(rs.getInt("inrush"));
                cfg.setVmax(rs.getInt("vmax"));
                cfg.setLimite_sobre_tensao(rs.getInt("limite_sobre_tensao"));
                cfg.setLimite_subtensao(rs.getInt("limite_subtensao"));
                cfg.setInt_status(rs.getInt("int_status"));
                cfg.setInt_med(rs.getInt("int_med"));
                cfg.setDatetime(rs.getDate("data"));
             //   cfg.setDatetime(rs.getTime("data"));
                
//                 Date dNow = new Date( );
//      SimpleDateFormat ft = 
//      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

               
                System.out.println(rs.getDate("data")+" - "+rs.getTime("data")); 
            }

        } catch (SQLException e) {
        }

        return cfg;


    }
    
    public void inserirConfiguracao(Configuracao cfg){    
    
        
              
    
                String sql = "INSERT INTO dataserverreligadora.configuracao(id,	id_religadora	,modo_operacao	,ka,	mca,	icc,	_is,	cserv,	\n"
                + "ccurto,	cmax,	cneutro,	cneutromax,	ncsc,	ncsot,	ncsut,	ptrafo,	lalsoc,\n"
                + "lacsoc,pacpot,corrente_aviso,corrente_desarme,	corrente_rearme,	sub_tensao_aviso,\n"
                + "sub_tensao_desarme,	sub_tensao_rearme,	sobre_tensao_aviso,	sobre_tensao_desarme,\n"
                + "sobre_tensao_rearme,	falta_fase_aviso,	falta_fase_desarme,	falta_fase_rearme,	\n"
                + "sobrecarga_aviso,	sobrecarga_desarme,	sobrecarga_rearme,	corrente_neutro_aviso,\n"
                + "corrente_neutro_desarme,	corrente_neutro_rearme,	numero_religamentos_corrente,	\n"
                + "intervalo_1,	intervalo_2,	intervalo_3,	intervalo_4,	intervalo_5,	\n"
                + "tempo_latencia_pos_religamento,	tempo_religamento_pos_normalizacao_tensao,	inrush,	vmax,\n"
                + "limite_sobre_tensao,	limite_subtensao,	int_status,	int_med,	data)"
                + " VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";     
    
                try {        
                    PreparedStatement stmt = (PreparedStatement) Conexao.conn.prepareStatement(sql);
    
                    
                    stmt.setInt(1, cfg.getId());
                    stmt.setInt(2, cfg.getId_religadora());
                    stmt.setInt(3, cfg.getModo_operacao());
                    stmt.setInt(4, cfg.getKa());
                    stmt.setInt(5, cfg.getMca());
                    stmt.setInt(6, cfg.getIcc());
                    stmt.setInt(7, cfg.getIs());
                    stmt.setInt(8, cfg.getCserv());
                    stmt.setInt(9, cfg.getCcurto());
                    stmt.setInt(10, cfg.getCmax());
                    stmt.setInt(11, cfg.getCneutro());
                    stmt.setInt(12, cfg.getCneutromax());
                    stmt.setInt(13, cfg.getNcsc());
                    stmt.setInt(14, cfg.getNcsot());
                    stmt.setInt(15, cfg.getNcsut());
                    stmt.setInt(16, cfg.getPtrafo());
                    stmt.setInt(17, cfg.getLacsoc());
                    stmt.setInt(18, cfg.getLalsoc());
                    stmt.setInt(19, cfg.getPacpot());
                    stmt.setInt(20, cfg.getCorrente_rearme());
                    stmt.setInt(21, cfg.getCorrente_aviso());
                    stmt.setInt(22, cfg.getCorrente_desarme());
                    stmt.setInt(23, cfg.getSub_tensao_aviso());
                    stmt.setInt(24, cfg.getSub_tensao_desarme());
                    stmt.setInt(25, cfg.getSub_tensao_rearme());
                    stmt.setInt(26, cfg.getSobre_tensao_aviso());
                    stmt.setInt(27, cfg.getSobre_tensao_desarme());
                    stmt.setInt(28, cfg.getSobre_tensao_rearme());
                    stmt.setInt(29, cfg.getFalta_fase_aviso());
                    stmt.setInt(30, cfg.getFalta_fase_desarme());
                    stmt.setInt(31, cfg.getFalta_fase_rearme());
                    stmt.setInt(32, cfg.getSobrecarga_aviso());
                    stmt.setInt(33, cfg.getSobrecarga_desarme());
                    stmt.setInt(34, cfg.getSobrecarga_rearme());
                    stmt.setInt(35, cfg.getCorrente_neutro_aviso());
                    stmt.setInt(36, cfg.getCorrente_neutro_desarme());
                    stmt.setInt(37, cfg.getCorrente_neutro_rearme());
                    stmt.setInt(38, cfg.getNumero_religamentos_corrente());
                    stmt.setInt(39, cfg.getIntervalo_1());
                    stmt.setInt(40, cfg.getIntervalo_2());
                    stmt.setInt(41, cfg.getIntervalo_3());
                    stmt.setInt(42, cfg.getIntervalo_4());
                    stmt.setInt(43, cfg.getIntervalo_5());
                    stmt.setInt(44, cfg.getTempo_latencia_pos_religamento());
                    stmt.setInt(45, cfg.getTempo_religamento_pos_normalizacao_tensao());
                    stmt.setInt(46, cfg.getInrush());
                    stmt.setInt(47, cfg.getVmax());
                    stmt.setInt(48, cfg.getLimite_subtensao());
                    stmt.setInt(49, cfg.getLimite_sobre_tensao());
                    stmt.setInt(50, cfg.getInt_status());
                    stmt.setInt(51, cfg.getInt_med());
                    stmt.setString(52,  dateFormatDB.format(cfg.getDatetime()));             
    
                    stmt.execute(); //executa comando       
                   JOptionPane.showMessageDialog(null,"CADASTRADO COM SUCESSO!");         
    
                } catch (SQLException u) {        
                    throw new RuntimeException(u);        
                }        
            }  
    
    public void removeConfiguracao(int id){
        String sql = "DELETE FROM dataserverreligadora.configuracao WHERE id = " + id + " ";

        try {
            PreparedStatement stmt = (PreparedStatement) Conexao.conn.prepareStatement(sql);

            stmt.execute();//executa comando       
            JOptionPane.showMessageDialog(null,"REMOVIDO COM SUCESSO!");
            PainelConfiguracao.zeraCampos();

        } catch (SQLException u) {
            throw new RuntimeException(u);
        }
    }
    public void atualizaConfiguracao(Configuracao cfg, int id_religadora){    
    
                //cria objeto    
              
    
               String sql  = "UPDATE dataserverreligadora.configuracao set modo_operacao = ? ,ka = ? ,	mca = ? ,	icc = ? ,	_is = ? ,	cserv = ? ,	\n"
                + "ccurto = ? ,	cmax = ? ,	cneutro = ? ,	cneutromax = ? ,	ncsc = ? ,	ncsot = ? ,	ncsut = ? ,	ptrafo = ? ,	lalsoc = ? ,\n"
                + "lacsoc = ? ,pacpot = ? ,corrente_aviso = ? ,corrente_desarme = ? ,	corrente_rearme = ? ,	sub_tensao_aviso = ? ,\n"
                + "sub_tensao_desarme = ? ,	sub_tensao_rearme = ? ,	sobre_tensao_aviso = ? ,	sobre_tensao_desarme = ? ,\n"
                + "sobre_tensao_rearme = ? ,	falta_fase_aviso = ? ,	falta_fase_desarme = ? ,	falta_fase_rearme = ? ,	\n"
                + "sobrecarga_aviso = ? ,	sobrecarga_desarme = ? ,	sobrecarga_rearme = ? ,	corrente_neutro_aviso = ? ,\n"
                + "corrente_neutro_desarme = ? ,	corrente_neutro_rearme = ? ,	numero_religamentos_corrente = ? ,	\n"
                + "intervalo_1 = ? ,	intervalo_2 = ? ,	intervalo_3 = ? ,	intervalo_4 = ? ,	intervalo_5 = ? ,	\n"
                + "tempo_latencia_pos_religamento = ? ,	tempo_religamento_pos_normalizacao_tensao = ? ,	inrush = ? ,	vmax = ? ,\n"
                + "limite_sobre_tensao = ? ,	limite_subtensao = ? ,	int_status = ? ,	int_med = ? ,	data  = ? WHERE id_religadora = "+id_religadora+"";
    
                try {        
                    PreparedStatement stmt = (PreparedStatement) Conexao.conn.prepareStatement(sql);
                    
                   // stmt.setInt(1, cfg.getId());
                    //stmt.setInt(2, cfg.getId_religadora());
                    stmt.setInt(1, cfg.getModo_operacao());
                    stmt.setInt(2, cfg.getKa());
                    stmt.setInt(3, cfg.getMca());
                    stmt.setInt(4, cfg.getIcc());
                    stmt.setInt(5, cfg.getIs());
                    stmt.setInt(6, cfg.getCserv());
                    stmt.setInt(7, cfg.getCcurto());
                    stmt.setInt(8, cfg.getCmax());
                    stmt.setInt(9, cfg.getCneutro());
                    stmt.setInt(10, cfg.getCneutromax());
                    stmt.setInt(11, cfg.getNcsc());
                    stmt.setInt(12, cfg.getNcsot());
                    stmt.setInt(13, cfg.getNcsut());
                    stmt.setInt(14, cfg.getPtrafo());
                    stmt.setInt(15, cfg.getLacsoc());
                    stmt.setInt(16, cfg.getLalsoc());
                    stmt.setInt(17, cfg.getPacpot());
                    stmt.setInt(18, cfg.getCorrente_rearme());
                    stmt.setInt(19, cfg.getCorrente_aviso());
                    stmt.setInt(20, cfg.getCorrente_desarme());
                    stmt.setInt(21, cfg.getSub_tensao_aviso());
                    stmt.setInt(22, cfg.getSub_tensao_desarme());
                    stmt.setInt(23, cfg.getSub_tensao_rearme());
                    stmt.setInt(24, cfg.getSobre_tensao_aviso());
                    stmt.setInt(25, cfg.getSobre_tensao_desarme());
                    stmt.setInt(26, cfg.getSobre_tensao_rearme());
                    stmt.setInt(27, cfg.getFalta_fase_aviso());
                    stmt.setInt(28, cfg.getFalta_fase_desarme());
                    stmt.setInt(29, cfg.getFalta_fase_rearme());
                    stmt.setInt(30, cfg.getSobrecarga_aviso());
                    stmt.setInt(31, cfg.getSobrecarga_desarme());
                    stmt.setInt(32, cfg.getSobrecarga_rearme());
                    stmt.setInt(33, cfg.getCorrente_neutro_aviso());
                    stmt.setInt(34, cfg.getCorrente_neutro_desarme());
                    stmt.setInt(35, cfg.getCorrente_neutro_rearme());
                    stmt.setInt(36, cfg.getNumero_religamentos_corrente());
                    stmt.setInt(37, cfg.getIntervalo_1());
                    stmt.setInt(38, cfg.getIntervalo_2());
                    stmt.setInt(39, cfg.getIntervalo_3());
                    stmt.setInt(40, cfg.getIntervalo_4());
                    stmt.setInt(41, cfg.getIntervalo_5());
                    stmt.setInt(42, cfg.getTempo_latencia_pos_religamento());
                    stmt.setInt(43, cfg.getTempo_religamento_pos_normalizacao_tensao());
                    stmt.setInt(44, cfg.getInrush());
                    stmt.setInt(45, cfg.getVmax());
                    stmt.setInt(46, cfg.getLimite_subtensao());
                    stmt.setInt(47, cfg.getLimite_sobre_tensao());
                    stmt.setInt(48, cfg.getInt_status());
                    stmt.setInt(49, cfg.getInt_med());
                    stmt.setString(50,  dateFormatDB.format(cfg.getDatetime()));             
    
                    stmt.executeUpdate();//executa comando    
                     JOptionPane.showMessageDialog(null,"ATUALIZADO COM SUCESSO!");
                    
                     PainelConfiguracao.desabilitaCampos();
           PainelConfiguracao.jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/14_alterar.png")));
            PainelConfiguracao.numclic++;
                    stmt.close();        
    
                } catch (SQLException u) {        
                    throw new RuntimeException(u);        
                }        
            }  
      
    
}  
  